﻿' ******************************************************************************
' ** 
' **  Yahoo! Managed
' **  Written by Marius Häusler 2011
' **  It would be pleasant, if you contact me when you are using this code.
' **  Contact: YahooFinanceManaged@gmail.com
' **  Project Home: http://code.google.com/p/yahoo-finance-managed/
' **  
' ******************************************************************************
' **  
' **  Copyright 2011 Marius Häusler
' **  
' **  Licensed under the Apache License, Version 2.0 (the "License");
' **  you may not use this file except in compliance with the License.
' **  You may obtain a copy of the License at
' **  
' **    http://www.apache.org/licenses/LICENSE-2.0
' **  
' **  Unless required by applicable law or agreed to in writing, software
' **  distributed under the License is distributed on an "AS IS" BASIS,
' **  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' **  See the License for the specific language governing permissions and
' **  limitations under the License.
' ** 
' ******************************************************************************


Namespace YahooManaged


    Public Interface IQueryOptions

        ''' <summary>
        ''' The query text.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Property QueryText As String

    End Interface



    ''' <summary>
    ''' Provides properties to set the start index and count number for a query in results queue.
    ''' </summary>
    ''' <remarks></remarks>
    Public Class ResultCountOptions

        Private mStart As Integer = 0
        Private mCount As Integer = 10

        ''' <summary>
        ''' The results queue start index.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Start() As Integer
            Get
                Return mStart
            End Get
            Set(ByVal value As Integer)
                If value <= 0 Then
                    mStart = 0
                Else
                    mStart = value
                End If
            End Set
        End Property
        ''' <summary>
        ''' The total number of results.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Count() As Integer
            Get
                Return mCount
            End Get
            Set(ByVal value As Integer)
                If value <= 0 Then
                    mCount = 0
                Else
                    mCount = value
                End If
                mCount = value
            End Set
        End Property

        ''' <summary>
        ''' Default constructor
        ''' </summary>
        ''' <remarks></remarks>
        Public Sub New()
        End Sub
        Friend Sub New(ByVal original As ResultCountOptions)
            If original IsNot Nothing Then
                mStart = original.Start
                mCount = original.Count
            End If
        End Sub
        Public Sub New(ByVal start As Integer, ByVal count As Integer)
            mStart = start
            mCount = count
        End Sub


    End Class



End Namespace